//
// Created by LiuYou on 2021/10/28.
//

#include <iostream>
#include <cstring>


static void* startRoutine(void* args) {

    fputs( "线程正在工作！", stdout );

    pthread_exit( nullptr );
}


int main(int argc, char** argv) {

    fputs( "开始！", stdout );

    pthread_t tid{};
    int ret = pthread_create( &tid, nullptr, startRoutine, nullptr );
    if (ret != 0) {
        fprintf( stderr, "pthread_create(): %s.\n", strerror(errno));
        return 1;
    }

    pthread_join( tid, nullptr );

    fputs( "结束！", stdout );


    return 0;
}
// 运行结果:
/*
/home/liuyou/CLionProjects/LinuxEnvironmentProgramming2/cmake-build-debug/src/concurrence/parallel/thread/thread-createthread3
开始！线程正在工作！结束！
Process finished with exit code 0

todo 笔记: 注意: 运行结果一定是上面的运行结果。
 因为 pthread_join();是阻塞的, 它会挂起 main线程, 然后
 CPU会调度执行创建出来的线程。
 然后执行完这个创建出来的线程后, 当CPU时间片再分到 main线程 的时候
 pthread_join();调用成功, 然后继续执行下去。
 */